#pragma once

#include "GlobalDefines.h"

class WSObject
{
public:
	WSObject();
	virtual ~WSObject();

public:
	virtual bool init() { return true; }
	virtual void Initialize() {}
	virtual void Destroy() {}

public:
	void retain();
	void release();
	WSObject * autorelease();

protected:
	unsigned int mReference;
	bool mManaged;
};